package com.zlp.spring.v3.config;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;

/** 
 * 自定义 LinuxCondition
 * @date: 2021/2/25 13:59
 * @return:  
 */
public class LinuxCondition implements Condition {

    /**
     * @param conditionContext:判断条件能使用的上下文环境
     * @param annotatedTypeMetadata:注解所在位置的注释信息
     * */
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {

        // 获取当前环境信息
        Environment environment = conditionContext.getEnvironment();
        // 获得当前系统环境
        String property = environment.getProperty("os.name");
        // 包含Windows则说明是windows系统，返回true
        if (property.contains("Linux")){
            return true;
        }
        // 放弃注入
        return false;
    }
}
